import * as echarts from 'echarts'

export function initBarChart (dom, option = {}) {
  // 如果option中提供了xAxis.data或series.data，它们将覆盖默认数据
  if (!dom || !(dom instanceof HTMLElement)) {
    console.error('提供的dom不是一个有效的HTML元素')
    return null
  }
  // 初始化echarts实例
  const myChart = echarts.init(dom)

  // 合并默认选项和传入选项
  const finalOption = {
    xAxis: {
      type: 'category',
      data: option.xAxis.data || ['某某专业', '某某专业', '某某专业', '某某专业', '某某专业', '某某专业', '某某专业']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        data: Array.isArray(option.series) && Array.isArray(option.series[0].data) ? option.series[0].data : [120, 200, 150, 80, 70, 110, 130],
        type: 'bar',

        // 添加 label 配置来显示数据标签
        label: {
          show: true, // 显示标签
          position: 'top', // 标签的位置在上方
          valueAnimation: true, // 是否显示动画效果
          formatter: '{c}' // 格式化标签内容，{c} 表示数值本身
        }
      }
      // 可以添加更多series配置
    ]
    // 可以在这里添加更多全局配置项
  }

  // 应用配置并返回echarts实例
  myChart.setOption(finalOption)
  // 如果需要，可以添加窗口大小变化监听器来更新图表大小
  // window.addEventListener('resize', () => {
  //   myChart.resize();
  // });
  return myChart
}
